Те Архитектура набора инструкций (ISA) выступает в качестве фундаментального уровня абстракции и формального контракта между программным обеспечением и аппаратным обеспечением. Хотя высокие уровни языков программирования, такие как С, скрывают сложность, ISA раскрывает архитектурное состояние—точную конфигурацию регистров процессора и памяти.
1. Архитектурное состояние
x86-64 процессор определяет свое состояние через несколько ключевых компонентов:
- Счетчик программы (%rip): Содержит адрес следующей инструкции.
- Файл целочисленных регистров: 16 универсальных регистров (например,
%rax,%rbx) для хранения 64-битных значений. - Признаки состояния: Флаги (ZF, SF, CF, OF) для управления потоком выполнения.
- Векторные регистры: Такие как регистры YMM (256 бит) для операций SIMD.
2. Абстракция памяти
Машинный код рассматривает память как огромный массив с адресацией по байтам. Хотя x86-64 поддерживает 64-битные виртуальные адреса, современные реализации часто используют 48-битное адресное пространство ($2^{48}$ байт). Мы классифицируем размеры данных как Слово (16 бит), Двойное слово (32 бита) и Четверное слово (64 бит).
3. Эволюция и совместимость
Движимый законом Мура, Intel эволюционировал от 8086 до Core i7 Haswell. ISA гарантирует обратную совместимость, позволяя устаревшему машинному коду выполняться на современных многоядерных, гиперпоточных системах.